home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / BBS-Archive / Dev / Obrn-A_1.6_lib.lha / oberon-a / source3.lha / source / EAGUI / EAGUI.mod < prev    next >
Text File  |  1995-06-29  |  9KB  |  299 lines

  1. (*************************************************************************
  2.  
  3.      $RCSfile: EAGUI.mod $
  4.   Description: Interface to EAGUI.library
  5.  
  6.    Created by: fjc (Frank Copeland)
  7.     $Revision: 1.3 $
  8.       $Author: fjc $
  9.         $Date: 1995/06/04 23:19:35 $
  10.  
  11.   Oberon-A Interface Copyright © 1995, Frank Copeland.
  12.   This file is part of the Oberon-A Library.
  13.   See Oberon-A.doc for conditions of use and distribution.
  14.  
  15. *************************************************************************)
  16.  
  17. <* STANDARD- *>
  18.  
  19. MODULE [2] EAGUI;
  20.  
  21. IMPORT
  22.   SYS := SYSTEM, Kernel, e := Exec, u := Utility, gfx := Graphics,
  23.   i := Intuition, gt := GadTools;
  24.  
  25. CONST
  26.  
  27. (* library name and version *)
  28.   LIBRARYNAME *    = "EAGUI.library";
  29.   LIBRARYVERSION * = 3;
  30.  
  31. (* Object.type definitions *)
  32.   TYPE_HGROUP *       = 1;
  33.   TYPE_VGROUP *       = 2;
  34.   TYPE_GTGADGET *     = 3;
  35.   TYPE_BOOPSIGADGET * = 4;
  36.   TYPE_CUSTOMIMAGE *  = 5;
  37.   TYPE_BOOPSIIMAGE *  = 6;
  38.  
  39. (* various LONG attributes can have an unknown value at some point *)
  40.   UNKNOWN * = -1;
  41.  
  42. (* error return codes *)
  43.   ERROR_OK *            =   0;
  44.   ERROR_OUT_OF_MEMORY * = 100;
  45.   ERROR_BAD_OBJECT *    = 101;
  46.  
  47. (* flags for standard methods *)
  48.   SM_NONE *    = 000000000H;
  49.   SM_MINSIZE * = 000000001H;
  50.   SM_BORDER *  = 000000002H;
  51.  
  52. (* tags *)
  53.   TAGBASE * = u.user;
  54.  
  55. (* These tags can be used under different circumstances. The characters in
  56.  * the comments behind the tags indicate the allowed use:
  57.  *
  58.  * I = Initialize: NewObjectA()
  59.  * S = Set:        SetAttrsA()
  60.  * G = Get:        GetAttrsA()
  61.  *
  62.  * Most functions ignore tags they don't recognize, but don't count on
  63.  * that, or side effects may occur in future versions.
  64.  *)
  65.  
  66.   Parent *             = TAGBASE + 1;                 (* I.G *)
  67.   Type *               = TAGBASE + 2;                 (* ..G *)
  68.   Disabled *           = TAGBASE + 3;                 (* ISG *)
  69.   ID *                 = TAGBASE + 4;                 (* ISG *)
  70.   MinWidth *           = TAGBASE + 5;                 (* ISG *)
  71.   MinHeight *          = TAGBASE + 6;                 (* ISG *)
  72.   BorderLeft *         = TAGBASE + 7;                 (* ISG *)
  73.   BorderRight *        = TAGBASE + 8;                 (* ISG *)
  74.   BorderTop *          = TAGBASE + 9;                 (* ISG *)
  75.   BorderBottom *       = TAGBASE + 10;                (* ISG *)
  76.   Left *               = TAGBASE + 11;                (* .SG *)
  77.   Top *                = TAGBASE + 12;                (* .SG *)
  78.   Width *              = TAGBASE + 13;                (* ISG *)
  79.   Height *             = TAGBASE + 14;                (* ISG *)
  80.   Weight *             = TAGBASE + 15;                (* ISG *)
  81.   Instance *           = TAGBASE + 17;                (* ..G *)
  82.   InstanceAddress *    = TAGBASE + 18;                (* ISG *)
  83.  
  84.   MinSizeMethod *      = TAGBASE + 19;                (* ISG *)
  85.   BorderMethod *       = TAGBASE + 20;                (* ISG *)
  86.   RenderMethod *       = TAGBASE + 21;                (* ISG *)
  87.   GetStateMethod *     = TAGBASE + 22;                (* ISG *)
  88.   SetStateMethod *     = TAGBASE + 23;                (* ISG *)
  89.  
  90.   Object *             = TAGBASE + 24;                (* I.. *)
  91.  
  92.   GTType *             = TAGBASE + 25;                (* ISG *)
  93.   GTTagList *          = TAGBASE + 26;                (* ISG *)
  94.   GTText *             = TAGBASE + 27;                (* ISG *)
  95.   GTTextAttr *         = TAGBASE + 28;                (* ISG *)
  96.   GTFlags *            = TAGBASE + 29;                (* ISG *)
  97.  
  98.   BOOPSIPrivClass *    = TAGBASE + 30;                (* ISG *)
  99.   BOOPSIPubClass *     = TAGBASE + 31;                (* ISG *)
  100.   BOOPSITagList *      = TAGBASE + 32;                (* ISG *)
  101.  
  102.   Child *              = TAGBASE + 33;                (* I.. *)
  103.  
  104.   FirstChild *         = TAGBASE + 34;                (* ..G *)
  105.   NextObject *         = TAGBASE + 35;                (* ..G *)
  106.  
  107.   StandardMethod *     = TAGBASE + 36;                (* IS. *)
  108.   UserData *           = TAGBASE + 37;                (* ISG *)
  109.  
  110.   DefDisabled *        = TAGBASE + 38;                (* .SG *)
  111.   DefWeight *          = TAGBASE + 39;                (* .SG *)
  112.   DefMinSizeMethod *   = TAGBASE + 40;                (* .SG *)
  113.   DefBorderMethod *    = TAGBASE + 41;                (* .SG *)
  114.   DefRenderMethod *    = TAGBASE + 42;                (* .SG *)
  115.   DefGetStateMethod *  = TAGBASE + 43;                (* .SG *)
  116.   DefSetStateMethod *  = TAGBASE + 44;                (* .SG *)
  117.   DefGTType *          = TAGBASE + 45;                (* .SG *)
  118.   DefGTTagList *       = TAGBASE + 46;                (* .SG *)
  119.   DefGTText *          = TAGBASE + 47;                (* .SG *)
  120.   DefGTTextAttr *      = TAGBASE + 48;                (* .SG *)
  121.   DefGTFlags *         = TAGBASE + 49;                (* .SG *)
  122.   DefBOOPSIPrivClass * = TAGBASE + 50;                (* .SG *)
  123.   DefBOOPSIPubClass *  = TAGBASE + 51;                (* .SG *)
  124.   DefBOOPSITagList *   = TAGBASE + 52;                (* .SG *)
  125.   DefStandardMethod *  = TAGBASE + 53;                (* .SG *)
  126.   DefBorderLeft *      = TAGBASE + 54;                (* .SG *)
  127.   DefBorderRight *     = TAGBASE + 55;                (* .SG *)
  128.   DefBorderTop *       = TAGBASE + 56;                (* .SG *)
  129.   DefBorderBottom *    = TAGBASE + 57;                (* .SG *)
  130.  
  131. TYPE
  132.  
  133. (* Pointer to an object, which is used as a `handle' by a lot of functions.
  134.  * The actual data structure of the object is hidden from the application
  135.  * programmer.
  136.  *)
  137.  
  138.   OPTR * = POINTER TO RECORD END;
  139.  
  140. (* This structure is READ-ONLY! *)
  141.  
  142.   RelationObjectPtr * = POINTER TO RelationObject;
  143.   RelationObject * = RECORD (e.NodeBase)
  144.     (* private *)
  145.     node - : e.Node;                            (* node *)
  146.  
  147.     (* attributes *)
  148.     object_ptr - : OPTR;                        (* pointer to the object *)
  149.   END;
  150.  
  151. (* Message structure as used by the Render hook. A pointer to this
  152.  * structure is passed in the message parameter of the callback hook. For
  153.  * more information on hooks, take a look at amiga.lib/CallHook() or
  154.  * utility.library/CallHookPkt().
  155.  *)
  156.  
  157.   RenderMessagePtr * = POINTER TO RenderMessage;
  158.   RenderMessage * = RECORD
  159.     root_ptr * : OPTR;
  160.     rastport_ptr * : gfx.RastPortPtr;
  161.   END;
  162.  
  163.  
  164. (*-- Library Base variable --------------------------------------------*)
  165.  
  166. VAR
  167.  
  168.   base* : e.LibraryPtr;
  169.  
  170.  
  171. (*-- Library Functions ------------------------------------------------*)
  172.  
  173. PROCEDURE GetMinSizes * [base, -30]
  174.   ( obj_ptr [8] : OPTR );
  175.  
  176. PROCEDURE LayoutObjects * [base, -36]
  177.   ( obj_ptr [8] : OPTR );
  178.  
  179. PROCEDURE GetObjectLeft * [base, -42]
  180.   ( root_ptr [8] : OPTR;
  181.     obj_ptr  [9] : OPTR )
  182.   : LONGINT;
  183.  
  184. PROCEDURE GetObjectTop * [base, -48]
  185.   ( root_ptr [8] : OPTR;
  186.     obj_ptr  [9] : OPTR )
  187.   : LONGINT;
  188.  
  189. PROCEDURE CreateGadgetList * [base, -54]
  190.   ( obj_ptr       [8] : OPTR;
  191.     VAR glist_ptr [9] : i.GadgetPtr;
  192.     vi_ptr       [10] : gt.VisualInfo;
  193.     draw_ptr     [11] : i.DrawInfoPtr )
  194.   : LONGINT;
  195.  
  196. PROCEDURE FreeGadgetList * [base, -60]
  197.   ( obj_ptr   [8] : OPTR;
  198.     glist_ptr [9] : i.GadgetPtr );
  199.  
  200. PROCEDURE NewObjectA * [base, -96]
  201.   ( type        [0] : e.ULONG;
  202.     taglist_ptr [8] : u.TagListPtr )
  203.   : OPTR;
  204.  
  205. PROCEDURE NewObject * [base, -96]
  206.   ( type        [0]   : e.ULONG;
  207.     taglist_ptr [8].. : u.Tag )
  208.   : OPTR;
  209.  
  210. PROCEDURE TextLength * [base, -108]
  211.   ( VAR textattr [8] : gfx.TextAttr;
  212.     string_ptr   [9] : ARRAY OF CHAR;
  213.     underscore   [0] : CHAR )
  214.   : LONGINT;
  215.  
  216. PROCEDURE TextLengthPtr * [base, -108]
  217.   ( textattr_ptr [8] : gfx.TextAttrPtr;
  218.     string_ptr   [9] : e.LSTRPTR;
  219.     underscore   [0] : CHAR )
  220.   : LONGINT;
  221.  
  222. PROCEDURE TextHeight * [base, -114]
  223.   ( VAR textattr [8] : gfx.TextAttr )
  224.   : LONGINT;
  225.  
  226. PROCEDURE TextHeightPtr * [base, -114]
  227.   ( textattr_ptr [8] : gfx.TextAttrPtr )
  228.   : LONGINT;
  229.  
  230. PROCEDURE PrintObjects * [base, -126]
  231.   ( obj_ptr [8] : OPTR );
  232.  
  233. PROCEDURE DisposeObject * [base, -102]
  234.   ( obj_ptr [8] : OPTR );
  235.  
  236. PROCEDURE RenderObjects * [base, -120]
  237.   ( obj_ptr      [8] : OPTR;
  238.     rastport_ptr [9] : gfx.RastPortPtr );
  239.  
  240. PROCEDURE NewRelationA * [base, -66]
  241.   ( obj_ptr      [8] : OPTR;
  242.     hook_ptr     [9] : u.HookPtr;
  243.     taglist_ptr [10] : u.TagListPtr )
  244.   : LONGINT;
  245.  
  246. PROCEDURE NewRelation * [base, -66]
  247.   ( obj_ptr      [8]   : OPTR;
  248.     hook_ptr     [9]   : u.HookPtr;
  249.     taglist_ptr [10].. : u.Tag )
  250.   : LONGINT;
  251.  
  252. PROCEDURE GetAttrsA * [base, -78]
  253.   ( obj_ptr     [8] : OPTR;
  254.     taglist_ptr [9] : u.TagListPtr )
  255.   : e.ULONG;
  256.  
  257. PROCEDURE GetAttrs * [base, -78]
  258.   ( obj_ptr     [8]   : OPTR;
  259.     taglist_ptr [9].. : u.Tag )
  260.   : e.ULONG;
  261.  
  262. PROCEDURE SetAttrsA * [base, -90]
  263.   ( obj_ptr     [8] : OPTR;
  264.     taglist_ptr [9] : u.TagListPtr )
  265.   : e.ULONG;
  266.  
  267. PROCEDURE SetAttrs * [base, -90]
  268.   ( obj_ptr     [8]   : OPTR;
  269.     taglist_ptr [9].. : u.Tag )
  270.   : e.ULONG;
  271.  
  272. PROCEDURE GetAttr * [base, -72]
  273.   ( obj_ptr   [8] : OPTR;
  274.     attribute [0] : e.ULONG )
  275.   : e.ULONG;
  276.  
  277. PROCEDURE SetAttr * [base, -84]
  278.   ( obj_ptr   [8] : OPTR;
  279.     attribute [0] : e.ULONG;
  280.     value     [1] : SYS.LONGWORD )
  281.   : e.ULONG;
  282.  
  283.  
  284. (*-- Library Base variable --------------------------------------------*)
  285.  
  286. <*$LongVars-*>
  287.  
  288. (**-----------------------------------*)
  289. PROCEDURE* [0] CloseLib (VAR rc : LONGINT);
  290.  
  291. BEGIN (* CloseLib *)
  292.   IF base # NIL THEN e.CloseLibrary (base) END
  293. END CloseLib;
  294.  
  295. BEGIN
  296.   base := e.OpenLibrary (LIBRARYNAME, LIBRARYVERSION);
  297.   IF base # NIL THEN Kernel.SetCleanup (CloseLib) END
  298. END EAGUI.
  299.